package 字符流;

import java.io.UnsupportedEncodingException;
import java.util.Arrays;

/*
* 字符流
* 由于字节流操作中文不是特别的方便，所以java就提供字符流
* 字符流=字节流+编码表
* 中文的字节存储方式
* 用字节流复制文本文件的时候，文本文件也会有中文，但是没有问题，原因是最终底层操作会自动进行字节拼接成中文，如何识别是中文？
* 汉字在存储的时候，无论选择哪种编码存储，第一个字节都是负数
* */
/*
* 相关方法
* 编码
* byte[] getBytes() 使用平台的默认字符集将该String编码为一系列字节
* byte[] getBytes(String charsetName) 使用指定的字符集将String编码为一系列字节
* 解码
* String(byte[] bytes) 使用平台默认的字符集解码指定的字节数组来创建字符串
* String(byte[] bytes,String charsetName) 通过指定的字符集解码指定的字节数组来创建字符串
* */
public class 字符串的编码解码问题 {
    public static void main(String[] args) throws UnsupportedEncodingException {
        /*定义一个字符串*/
        String s="中国";
        /*编码*/
        /*演示1*/
        byte[] bys1 = s.getBytes();
        System.out.println(Arrays.toString(bys1));
        /*演示2*/
        byte[] bys2 = s.getBytes("GBK");
        System.out.println(Arrays.toString(bys2));

        /*解码*/
        /*演示1*/
        String s1 = new String(bys1);
        System.out.println(s1);
        /*演示2*/
        String s2 = new String(bys2,"GBK");
        System.out.println(s2);
    }
}